Hallo Peter,
hier noch einmal das komplette Lied von Dir mit meiner aktuellsten Engine, mit der Verzögerung und einer erweiterten Möglichkeit wg. der Soundveränderung. Die Hüllkurve 4 war mir einfach zu lang und musste angepasst werden :-)
org $2000
icl 'Systemkonstanten.asm'
.proc main
jsr TitelMusik.MUSINI
?mainloop lda RTCLOK+2
?loop cmp RTCLOK+2
beq ?loop
jsr TitelMusik.MUSPLAY ; Muss alle 1/50 Sekunde aufgerufen werden (z.B. im VBI)
jmp ?mainloop
.end
run main
;
;
;************
; Musik-Generator V1.4 vom 12.04.2022 (1505)
;
;
; V1.0 generelle Engine
; V1.1 vom 31.03.2022 ; Möglichkeit die Hüllkruve mit einem Loop zu versehen
; V1.2 vom 04.04.2022 ; Hüllkurven Kommandos geändert
; V1.3 vom 06.04.2022 ; Man kann nun MusikSets erzeugen und so unterschiedliche Musik abspielen
; V1.4 vom 12.04.2022 ; Man kann per MUDELAY die Musikgeschwindigkeit beeinflussen / PITCH erweitert um Kommando 5 und 6
;**
.proc TitelMusik
;
;**************************************************
; Interne Variablen fuer MUSIK
;**************************************************
;
CSREGL EQU $CE ; Zeropageregister
CSREGH EQU $CF
;**************************************************
; VBI-Routine, alle 1/50sec. aufgerufen
;**************************************************
;
MUSPLAY INC MUDELAY ; Musik verzögern
LDA MUDELAY
CMP MUMAXDELAY
BNE @+
LDA #0
STA MUDELAY
@ CMP #1
BNE @+
RTS
@ LDX #0 ; Kanal 0 zuerst spielen
MUNXKN STX MUKANAL ; Kanal merken
JSR MUXPLY ; Ton für Stimme holen
JSR MUXHUL ; Huellkurve f. eine Stimme holen
JSR MUPLAY ; Ton/Huellkruve spielen
INX ; naechste Stimme
CPX #4 ; schon alle 4 Stimmen?
BNE MUNXKN ; nein -->
;
RTS
;
;*******
; Initialisierungsroutine
; POKEY init., Variable loeschen, VBI setzen
;*******
;
MUSINI LDA #0 ; POKEY und Variablen loeschen
LDX #3 ; je 4 Register
;
MUSEN1 STA AUDF1,X ; AUDF/C 1/2
STA AUDF1+4,X ; AUDF/C 3/4
STA MUDUR1,X ; Tondauer:=0
STA MUHPT1,X ; Huellk.-Zeiger:=Tabellenanfang
DEX ; schon alle 4?
BPL MUSEN1 ; nein, nochmal -->
;
;
LDA #3 ; Pokey ruecksetzen
STA SKCTL
LDA #$0 ; Sound-Kontrollreg. zurueck
STA AUDCTL
;
LDA MUWAHL ; Welches Notenset holen?
ASL ; x8 für 4 Stimmen Lo/Hi
ASL
ASL
TAY
LDA MUSIKSET,Y ; Setzen der einzelnen Zeiger
STA STMTBL ; der Stimmen
LDA MUSIKSET+1,Y ; Entspricht ein Rücksetzen
STA STMTBH ; der Musik
LDA MUSIKSET+2,Y
STA STMTBL+1
LDA MUSIKSET+3,Y
STA STMTBH+1
LDA MUSIKSET+4,Y
STA STMTBL+2
LDA MUSIKSET+5,Y
STA STMTBH+2
LDA MUSIKSET+6,Y
STA STMTBL+3
LDA MUSIKSET+7,Y
STA STMTBH+3
;
RTS
;
;**************************************************
; VBI ausschalten
; Vektor wird auf alten Wert zurueckgesetzt
;**************************************************
;
MUSAUS LDA #0 ; Sound aus!
LDX #3 ; alle 4 Kanaele
MUSAU1 STA AUDF1,X ; AUDF/C 1/2
STA AUDF1+4,X ; AUDF/C 3/4
DEX ; schon alle 4?
BPL MUSAU1 ; nein, nochmal -->
MUXPEN RTS
;
;*******
;Einen Kanal spielen
;pruefen der Tondauer, evtl. neue Note besorgen,
;Test auf ENDE, START, PAUSE
;*******
;
MUXPLY LDA MUDUR1,X ; ist Kanal noch aktiv?
BEQ MUXNEU ; nein, dann neue Note
;
DEC MUDUR1,X ; sonst nur Tondauer - 1
BNE MUXPEN ; Ton laeuft noch --->
;
MUXNEU LDA #0 ; Flag fuer Pause vorerst
STA MUPAU1,X ; zuruecknehmen
STA MUHPT1,X ; Huellk. Zeiger auf Anf.
LDA STMTBL,X ; Basisadresse der Noten
STA CSREGL ; tabelle in Zeropage
LDA STMTBH,X ; register umspeichern
STA CSREGH
;
LDY #0 ; Zeiger in Notentabelle
LDA (CSREGL),Y ; Tonhoehe der Note
;
CMP #$FA ; Kommt ein Kommando
BCS MUXCMD ; Ja, dann Kommando abfragen
JMP MUXWRK ; Nein, dann Note bearbeiten
MUXCMD CMP #START ; ist START-Befehl?
BNE MUXN1 ; nein --->
JSR MUSINI
LDX #$00
JMP MUXNEU
;
MUXN1 CMP #ENDE ; ist ENDE-Befehl?
BEQ MUXPAU ; ja, dann Pause imitieren -->
;
CMP #LOOP ; Loop?
BNE MUXN2 ; Nein, dann weiter MUXN2
JMP MULOOP
;
MUXN2 CMP #HUELLKURVE ; Huellkruve wechseln?
BNE MUXWRK
LDY #$01
LDA (CSREGL),Y ; gewünschte Kurve lesen
STA MUHUELL,X ; und setzen
JSR MUXNXT
JMP MUXNEU
;
MUXWRK PHA ; Tonhoehe merken
LDY #$01
LDA (CSREGL),Y ; Dauer aus Notentabelle lesen
STA MUDUR1,X ; in Zaehler f. Notendauer
JSR MUXNXT
;
PLA ; Tonhoehe wieder holen
CMP #PAUSE ; war es ein PAUSE Befehl?
BEQ MUXPAU ; ja ,dann Pausenbearbeitung
;
STA STTON,X
RTS
;
MUXPAU LDA #PAUSE ; Huellk. ausschalten
STA MUPAU1,X
RTS
;
MUXNXT CLC
LDA STMTBL,X ; Noten Zeiger auf
ADC #$02 ; naechste Note richten
STA STMTBL,X ; und abspeichern
LDA STMTBH,X
ADC #$00
STA STMTBH,X
RTS
MULOOP LDY #$01
LDA (CSREGL),Y ; zweites Byte lesen
BNE MULOOP1 ; = 0? Dann weiter
DEC MULOOPCNT,X
LDA MULOOPCNT,X
BNE @+ ; Zähler ungleich 0 -> @
JSR MUXNXT ; nächste Note holen
JMP MUXNEU ; und abspielen
@ LDA MULOOPADRL,X ; gemerkte Adresse
STA STMTBL,X ; holen und abspielen
LDA MULOOPADRH,X
STA STMTBH,X
JMP MUXNEU ; Neue Adresse abspielen
MULOOP1 STA MULOOPCNT,X ; Loop-Zähler setzen
JSR MUXNXT ; Adresszähler erhöhen
LDA STMTBL,X ; holen und abspielen
STA MULOOPADRL,X ; gemerkte Adresse
LDA STMTBH,X
STA MULOOPADRH,X
JMP MUXNEU ; Nächste Note holen und abspielen
;
;**************************************************
; Huellkurvengenerator
; Lautstaerke fuer einen Kanal wird gemaess
; Huellkurve eingestellt
;**************************************************
;
MUXHEN RTS
MUXHUL LDA STTON,X
STA MUTEMP
LDA MUPAU1,X ; Flag fuer Pause?
CMP #PAUSE ; ist auf Pause?
BNE MUXH0 ; nein, normale Huellk.
;
LDA #0 ; Pause Lautstaerke auf Null
STA STDIS,X ; Lautst. merken
BEQ MUXHEN ; (immer!) an Pokey -->
;
MUXH0 LDA MUHUELL,X
TAX
LDA MHLTBL,X ; Huellkurven Basisadresse
STA CSREGL ; in Zeropage Register
LDA MHLTBH,X ; MSB
STA CSREGH
LDX MUKANAL
LDY MUHPT1,X ; aktueller Zeiger in Hk.
LDA (CSREGL),Y ; neuer Stuetzpunkt
CMP #ENDE ; ist Huellk. zu Ende?
BEQ MUXHEN ; ja, dann fertig!
STA STDIS,X
MUDIS INY
LDA (CSREGL),Y ; CMD = 0 Ton unverändert nutzen
BNE MUXH1
INY
JMP MUXHNX
MUXH1 CMP #$01 ; CMD = 1 Ton übernehmen
BNE MUXH2
INY
LDA (CSREGL),Y
STA MUTEMP
JMP MUXHNX
MUXH2 CMP #$02 ; CMD = 2 Ton addieren
BNE MUXH3
INY
CLC
LDA STTON,X
ADC (CSREGL),Y
STA MUTEMP
JMP MUXHNX
MUXH3 CMP #$03 ; CMD = 3 Ton subtrahieren
BNE MUXH4
INY
SEC
LDA STTON,X
SBC (CSREGL),Y
STA MUTEMP
JMP MUXHNX
MUXH4 CMP #$04 ; CMD = 4 Zeiger zurück
BNE MUXH5
INY
TYA
SEC
SBC (CSREGL),Y
SBC (CSREGL),Y
SBC (CSREGL),Y
SBC #$02
TAY
JMP MUDIS
MUXH5 CMP #$05 ; CMD = 5 Ton addieren unendlich!
BNE MUXH6
INY
INC MUHUDELAY
LDA MUHUDELAY
CMP (CSREGL),Y
BNE @+
LDA #0
STA MUHUDELAY
INC STTON,X
@ JMP MUXHNX
MUXH6 CMP #$06 ; CMD = 6 Ton subtrahieren unendlich!
BNE MUXH7
INY
INC MUHUDELAY
LDA MUHUDELAY
CMP (CSREGL),Y
BNE @+
LDA #0
STA MUHUDELAY
DEC STTON,X
@ JMP MUXHNX
MUXH7 INY
; Stuetzpunkt merken
MUXHNX INY ; HK-Zeiger weiterschalten
TYA ; und abspeichern
STA MUHPT1,X
RTS
MUPLAY TXA ; Offset fuer Pokey-Register
ASL ; A Index mal 2
TAY
LDA MUTEMP
STA AUDF1,Y
LDA STDIS,X
STA AUDC1,Y ; an POKEY geben
RTS
;
;**************************************************
;Speicherzellen einzelner Zeiger und Noten
;**************************************************
;
STTON .byte $00,$00,$00,$00 ; Speicher für Tonhöhe
STDIS .byte $00,$00,$00,$00 ; Speicher für Lautstärke/Verzerrung
MUDUR1 .byte $00,$00,$00,$00 ; Zaehler fuer Tondauer
MUPAU1 .byte $00,$00,$00,$00 ; Flag fuer Pause
MUHPT1 .byte $00,$00,$00,$00 ; Zeiger in Huellkurve
MUHUELL .byte $00,$01,$02,$03 ; Zeiger auf verwendete Huellkruve
MULOOPADRL .byte $00,$00,$00,$00 ; Loop-Addr LO merken
MULOOPADRH .byte $00,$00,$00,$00 ; Loop-Addr HI merken
MULOOPCNT .byte $00,$00,$00,$00 ; Loop-Zähler
MUKANAL .byte $00 ; Aktueller Kanal
MUWAHL .byte $00 ; Welches Notenset soll genutzt werden
MUTEMP .byte $00 ; Temporäre Daten
MUDELAY .byte $00 ; Musikverzögerung
MUMAXDELAY .byte $05 ; max. Musikverzögerung (0 = aus ; je höher desto schneller)
MUHUDELAY .byte $00 ; interne Variable für die Hüllkurve
;
;***************************************************
;Definition der einzelnen Tonlängen
;Sechszehntel ist die kürzeste Länge
;***************************************************
;
PAUSE EQU $ff ; Code f. Pause
P EQU PAUSE ; Kuerzel f. Pause
START EQU $fe ; Code fuer Musik-Neubeginn
ENDE EQU $fd ; Code fuer Stimmende
HUELLKURVE EQU $fc ; Code fuer Huellkurve
K EQU HUELLKURVE ; Kuerzel f. Huellkruve
LOOP EQU $fb ; Code für einen Loop
L EQU LOOP ; Kuerzel f. Loop
;
DAUER EQU 1 ; Dauer eines 16tel
;
V EQU DAUER64 ; Ganze Note
H EQU DAUER32 ; Halbe Note
Q EQU DAUER16 ; 4tel Note
E EQU DAUER8 ; 8tel Note
S EQU DAUER4 ; 16tel Note
T EQU DAUER2 ; 32stel Note
VS EQU DAUER ; 64stel Note
;
;***************************************************
;Speicherstellen der einzelnen Zeiger
;der Notentabellen
;***************************************************
;
STMTBL .byte $00, $00, $00, $00
STMTBH .byte $00, $00, $00, $00
;
;***************************************************
;Definition der zu nutzenden Noten und Hüllkurven
;***************************************************
;
MUSIKSET .word PRO_MU1, PRO_MU2, PRO_MU3, PRO_MU4
MHLTBL .byte HUELL0,>HUELL1,>HUELL2,>HUELL3,>HUELL4
;
;***************************************************
;Notentabellen:
;jede Tabelle beginnt mit Label STIMM<n>
;wobei <n>:Nummer der Stimme (1-4)
;danach folgen die Noten (Note,Dauer)
;jeweils in .byte Befehlen.
;nach letzter Note muss 'ENDE' oder
;'START' eingetragen werden.
;'START' startet die gesamte Melodie neu!
;
;Man kann mit K,1 die Hüllkurve 1 auswählen
;Mit L,8 ..... L,0 kann man die Noten 8x wiederholen
;***************************************************
;
PRO_MU1 .byte K,0
.byte P,Q,$5b,Q,$4c,Q,$44,E+T+VS,P,Q
.byte $5b,S+VS,P,E+T+VS,$72,S+VS,$66,E+T+VS,$5b,S+VS,P,E+T+VS,$5b,Q
.byte $5b,H+Q+S+VS,P,V
.byte P,Q,$5b,E+T+VS,P,S+VS,$4c,E+T+VS,$44,S+VS,$3c,E+T+VS,$39,E+S+VS
.byte P,T+VS,$44,S+VS,P,E+T+VS,$4c,S+VS,$44,E+T+VS,$3c,S+VS,P,E+T+VS,$5b,E+S+VS
.byte $5b,H+Q+E,P,V
.byte P,Q,$5b,S+VS,P,S+T,$5b,S+VS,$4c,Q,$44,E+T+VS,P,Q
.byte $5b,S+VS,P,E+T+VS,$72,S+VS,$66,E+T+VS,$5b,S+VS,$4c,E+T+VS,P,Q
.byte P,V
.byte P,V
.byte P,S+VS,$5b,E+T+VS,P,S+VS,$4c,E+T+VS,$44,S+VS,$3c,E+T+VS,$39,E+S+VS,P,T+VS
.byte $32,S+VS,$2d,E+T+VS,P,S+VS,$3c,E+T+VS,P,S+VS,$4c,E+T+VS,P,Q
.byte P,V
.byte P,H+Q+S+VS,$5b,Q
.byte $5b,T+VS,P,T,$5b,T+VS,P,T+VS,$5b,T,P,T+VS,$b5,S+VS,$99,S+T,$88,S+VS,P,Q,$66,S+VS,P,S+T,$44,S+VS
.byte P,E+T+VS,$4c,S+VS,P,Q,$88,Q,K,4,$79,V,K,0
.byte $79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS,$79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS,$79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS,$79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS
.byte $5b,Q,$4c,Q,$44,S+VS,P,S+T,$5b,S+VS,$51,S+VS,P,S+T,$79,S+VS
.byte P,Q,$79,E+T+VS,P,S+VS,$79,Q,$5b,E+S+T,P,T
.byte K,4,$79,V,K,0
.byte $79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS,$79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS,$79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS,$79,T+VS,P,T,$79,T+VS,P,T+VS,$79,T,P,T+VS
.byte $88,S+VS,$79,S+T,$66,S+VS,$5b,H+Q
.byte P,S+VS,$79,S+T,$66,S+VS,$5b,S+VS,$44,S+T,P,S+VS,$4c,H
.byte P,S+VS,$79,S+T,$66,S+VS,$5b,Q,$51,Q,$4c,E+T+VS,$44,S+VS
.byte P,V
.byte $88,S+VS,$79,S+T,$66,S+VS,$5b,E+T+VS,P,S+VS,$4c,E+T+VS,P,S+VS,$5b,E,P,T+VS,$66,S+VS
.byte P,S+VS,$79,S+T,$66,S+VS,$5b,S+VS,$44,S+T,P,S+VS,$4c,E+T+VS,P,S+VS,$44,E+T+VS,P,S+VS
.byte $88,S+VS,$79,S+T,$66,S+VS,$5b,Q,$51,S+VS,$4c,S+T,$44,S+VS,P,S+VS,$44,S+T,$3c,S+VS
.byte P,V
.byte P,Q,$5b,Q,$4c,Q,$44,E+T+VS,P,Q
.byte $5b,S+VS,P,E+T+VS,$72,S+VS,$66,E+T+VS,$5b,S+VS,P,E+T+VS,$5b,Q
.byte $5b,H+Q+S+VS,P,V
.byte P,Q,$5b,E+T+VS,P,S+VS,$4c,E+T+VS,$44,S+VS,$3c,E+T+VS,$39,E+S+VS
.byte P,T+VS,$44,S+VS,P,E+T+VS,$4c,S+VS,$44,E+T+VS,$3c,S+VS,P,E+T+VS,$5b,E+S+VS
.byte $5b,H+Q+E,P,V
.byte P,Q,$5b,S+VS,P,S+T,$5b,S+VS,$4c,Q,$44,E+T+VS,P,Q
.byte $5b,S+VS,P,E+T+VS,$72,S+VS,$66,E+T+VS,$5b,S+VS,$4c,E+T+VS,P,Q
.byte P,V
.byte P,V
.byte P,S+VS,$5b,E+T+VS,P,S+VS,$4c,E+T+VS,$44,S+VS,$3c,E+T+VS,$39,E+S+VS,P,T+VS
.byte $32,S+VS,$2d,E+T+VS,P,S+VS,$3c,E+T+VS,P,S+VS,$4c,E+T+VS,P,Q
.byte P,V
.byte P,H+Q+S+VS,$5b,S+VS,P,S+T
.byte $2d,S+VS,P,E+T+VS,$32,S+VS,P,E+T+VS,$39,S+VS,P,E+T+VS,$3c,S+VS,P,S+VS,$44,S+T
.byte P,S+VS,$5b,S+VS,$51,S+T,P,S+VS,$66,S+VS,$5b,S+T,P,S+VS,$72,S+VS,P,S+T,$88,S+VS,K,4,$79,V,K,0
.byte P,V
.byte $5b,S+VS,$3c,S+T,$2d,S+VS,P,S+VS,$44,S+T,$32,S+VS,P,S+VS,$4c,S+T,$39,S+VS,P,S+VS,$51,S+T,$3c,S+VS
.byte P,Q,$5b,E+T+VS,P,S+VS,$66,E+T+VS,P,S+VS,$72,E+T+VS,P,S+VS
.byte K,4,$79,V,K,0
.byte P,V
.byte $88,S+VS,$79,S+T,$66,S+VS,$5b,H+Q
.byte P,S+VS,$79,S+T,$66,S+VS,$5b,S+VS,$44,S+T,P,S+VS,$4c,H
.byte P,S+VS,$79,S+T,$66,S+VS,$5b,Q,$51,Q,$4c,E+T+VS,$44,S+VS
.byte P,V
.byte $88,S+VS,$79,S+T,$66,S+VS,$5b,E+T+VS,P,S+VS,$4c,E+T+VS,P,S+VS,$5b,E,P,T+VS,$66,S+VS
.byte P,S+VS,$79,S+T,$66,S+VS,$5b,S+VS,$44,S+T,P,S+VS,$4c,E+T+VS,P,S+VS,$44,E+T+VS,P,S+VS
.byte $88,S+VS,$79,S+T,$66,S+VS,$5b,Q,$51,S+VS,$4c,S+T,$44,S+VS,P,S+VS,$44,S+T,$3c,S+VS
.byte P,V
.byte START
PRO_MU2 .byte K,0
.byte P,H+Q+E+T+VS,$51,E+S+VS
.byte P,E,$79,E+T+VS,P,Q+S+VS,$72,E+T+VS,P,E+S+VS
.byte P,V
.byte P,V
.byte P,Q+T+VS,$66,S+VS,P,H+Q
.byte $51,E+T+VS,P,Q+S+VS,$4c,E+T+VS,P,Q+S+VS
.byte P,V
.byte P,V
.byte P,H+E+T+VS,$51,E+S+VS,P,E
.byte $79,E+T+VS,P,H,$5b,Q+S+VS
.byte $5b,H+Q,P,V
.byte P,Q+E+T+VS,$66,S+VS,P,H+Q+E+T+VS
.byte $32,S+VS,P,E+T+VS,$44,S+VS,P,E+T+VS,$5b,H
.byte $5b,H+S+VS,P,V
.byte P,V
.byte P,Q,$72,S+VS,P,E+T+VS,$79,Q,P,Q
.byte P,V
.byte P,V
.byte P,H+S+VS,$51,S+T,P,E+T,$66,S+T,P,S+VS
.byte $88,Q,P,E+T+VS,$88,S+VS,P,H
.byte P,V
.byte P,V
.byte P,V
.byte $88,S+VS,P,Q+S+T,$5b,S+VS,P,H
.byte $88,S+VS,P,H+Q+E+T+VS
.byte $5b,V
.byte P,Q+E+T+VS,$66,S+VS,P,E+T+VS,$66,S+VS,P,Q
.byte $88,S+VS,P,Q+S+T,$5b,S+VS,P,H
.byte P,H+Q,$4c,S+VS,P,E+T+VS
.byte $5b,V
.byte P,H+Q+E+T+VS,$51,E+S+VS
.byte P,E,$79,E+T+VS,P,Q+S+VS,$72,E+T+VS,P,E+S+VS
.byte P,V
.byte P,V
.byte P,Q+T+VS,$66,S+VS,P,H+Q
.byte $51,E+T+VS,P,Q+S+VS,$4c,E+T+VS,P,Q+S+VS
.byte P,V
.byte P,V
.byte P,H+E+T+VS,$51,E+S+VS,P,E
.byte $79,E+T+VS,P,H,$5b,Q+S+VS
.byte $5b,H+Q,P,V
.byte P,Q+E+T+VS,$66,S+VS,P,H+Q+E+T+VS
.byte $32,S+VS,P,E+T+VS,$44,S+VS,P,E+T+VS,$5b,H
.byte $5b,H+S+VS,P,V
.byte P,Q,$66,S+VS,P,E+T+VS,$72,S+VS,P,E+T+VS,$79,S+VS,P,E+T+VS
.byte $4c,S+VS,P,S+T,$4c,S+VS,P,E+T+VS,$5b,S+VS,P,E+T+VS,$66,S+VS,P,S+VS,$79,S+T,P,S+VS
.byte P,V
.byte P,V
.byte P,Q,$66,S+VS,P,E+T+VS,$72,S+VS,P,E+T+VS,$79,S+VS,P,E+T+VS
.byte $4c,E+T+VS,P,H+Q,$88,S+VS
.byte P,V
.byte P,V
.byte P,V
.byte $88,S+VS,P,Q+S+T,$5b,S+VS,P,H
.byte $88,S+VS,P,H+Q+E+T+VS
.byte $5b,V
.byte P,Q+E+T+VS,$66,S+VS,P,E+T+VS,$66,S+VS,P,Q
.byte $88,S+VS,P,Q+S+T,$5b,S+VS,P,H
.byte P,H+Q,$4c,S+VS,P,E+T+VS
.byte $5b,V
.byte P,V
.byte ENDE
PRO_MU3 .byte K,1
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$80,S+T,P,E+T,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$a1,S,P,T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S,P,T,$b6,T,P,S,$a1,T,P,T,$8f,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$6b,S+T,P,E+T,$6b,S,P,T,$6b,E,P,T,$80,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S,P,T,$a1,S+T,P,S,$8f,S+T,P,H
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$80,S+T,P,E+T,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$a1,S,P,T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S,P,T,$b6,T,P,S,$a1,T,P,T,$8f,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$6b,S+T,P,E+T,$6b,S,P,T,$6b,E,P,T,$80,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S,P,T,$a1,S+T,P,S,$8f,S+T,P,H
.byte $8f,Q,$8f,Q,$6b,S,P,T,$5f,S,$50,S,P,T,$7a,S,P,T,$6b,S,$5c,S,P,T
.byte $50,E+T,P,S+T,$5c,E+T,P,S+T,$5f,E+T,P,S+T,$6b,E+T,P,S+T
.byte $bf,V
.byte $bf,S,P,T,$a1,T,P,T,$80,S,P,T,$7a,E,P,T,$80,S,P,T,$7a,E+S+T,P,T,$80,E+S+T,P,T
.byte $8f,Q+E,P,E,$b6,E+T,P,S+T,$bf,E+T,P,S+T
.byte $da,E+T,P,S+T,$bf,E+T,P,S+T,$da,E+T,P,S+T,$a1,E+T,P,S+T
.byte $bf,V
.byte $bf,T,P,S,$bf,T,P,T,$bf,S,P,T,$bf,T,P,S,$bf,T,P,T,$bf,S,P,T,$bf,T,P,S,$bf,T,P,T,$bf,S,P,T,$bf,T,P,S,$bf,T,P,T,$bf,S,P,T
.byte $8f,V
.byte $6b,V
.byte $5f,V
.byte $50,V
.byte P,Q,$8f,E+T,P,S+T,$8f,E+T,P,S+T,$8f,E+T,P,S+T
.byte $6b,E+T,P,S+T,$6b,E+T,P,S+T,$6b,E+T,P,S+T,$6b,E+T,P,S+T
.byte $5f,E+T,P,S+T,$5f,E+T,P,S+T,$5f,E+T,P,S+T,$5f,E+T,P,S+T
.byte $8f,S+T,P,S,$8f,S+T,P,Q,$8f,H
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$80,S+T,P,E+T,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$a1,S,P,T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S,P,T,$b6,T,P,S,$a1,T,P,T,$8f,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$6b,S+T,P,E+T,$6b,S,P,T,$6b,E,P,T,$80,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S,P,T,$a1,S+T,P,S,$8f,S+T,P,H
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$80,S+T,P,E+T,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$a1,S,P,T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S,P,T,$b6,T,P,S,$a1,T,P,T,$8f,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T
.byte $8f,S+T,P,S,$80,S+T,$7a,S+T,P,S,$6b,S+T,P,E+T,$6b,S,P,T,$6b,E,P,T,$80,S,P,T
.byte $8f,S+T,P,S,$8f,S+T,P,E+T,$a1,S+T,$8f,S+T,P,S,$8f,S+T,P,Q
.byte $8f,S+T,P,S,$8f,S,P,T,$a1,S+T,P,S,$8f,S+T,P,H
.byte $8f,E+T,P,S+T,$8f,E+T,P,S+T,$7a,E+T,P,S+T,$8f,E+T,P,S+T
.byte $7a,E+T,P,S+T,$7a,E+T,P,S+T,$80,E+T,P,S+T,$7a,E+T,P,S+T
.byte $8f,Q,$7a,Q,P,Q,$8f,E+T,P,S+T
.byte $8f,Q,$7a,Q,$6b,Q+E+T,P,S+T
.byte $8f,E+T,P,S+T,$5f,E+T,P,S+T,$7a,E+T,P,S+T,$8f,E+T,P,S+T
.byte $7a,T,P,S,$7a,T,P,T,$7a,S,P,T,$7a,T,P,S,$7a,T,P,T,$7a,S,P,T,$7a,T,P,S,$7a,T,P,T,$7a,S,P,T,$6b,E+T,P,S+T
.byte $a1,E+T,P,S+T,$a1,E+T,P,S+T,$a1,E+T,P,S+T,$8f,E+S+T,P,T
.byte $7a,E+S+T,P,T,$6b,E+S+T,P,T,$7a,E+S+T,P,T,$a1,E+S+T,P,T
.byte $8f,V
.byte $6b,V
.byte $5f,V
.byte $50,V
.byte P,Q,$8f,E+T,P,S+T,$8f,E+T,P,S+T,$8f,E+T,P,S+T
.byte $6b,E+T,P,S+T,$6b,E+T,P,S+T,$6b,E+T,P,S+T,$6b,E+T,P,S+T
.byte $5f,E+T,P,S+T,$5f,E+T,P,S+T,$5f,E+T,P,S+T,$5f,E+T,P,S+T
.byte $8f,S+T,P,S,$8f,S+T,P,Q,$8f,H
.byte P,V
.byte ENDE
PRO_MU4 .byte K,3
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,2,$35,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,2,$35,S,P,T
.byte K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,S,K,2,$35,T,P,T,K,2,$35,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,2,$35,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,2,$35,S,P,T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,E,K,3,$32,S,P,E,K,3,$32,S,P,S+T,K,2,$35,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,E,K,3,$32,S,P,E,K,3,$32,S,P,S+T,K,2,$35,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,E+S+T,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,2,$35,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,E,K,3,$32,S,P,T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,3,$32,S,P,T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,H+Q+E+S+T
.byte K,3,$32,T,P,E+S+T,K,2,$35,T,P,E+S+T,K,3,$32,T,P,E+S+T,K,2,$35,T,P,E,K,2,$35,S,P,T
.byte K,3,$32,T,P,S,K,3,$32,T,P,T,K,3,$32,S,P,T,K,2,$35,T,P,S,K,2,$35,T,P,T,K,2,$35,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,2,$35,S,P,T,K,3,$32,T,P,S,K,3,$32,T,P,T,K,2,$35,S,P,T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,E,K,3,$32,S,P,E,K,3,$32,S,P,S+T,K,2,$35,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,E,K,3,$32,S,P,E,K,3,$32,S,P,S+T,K,2,$35,T,P,E+S+T,K,2,$35,T,P,E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte K,3,$32,T,P,Q+E,K,3,$32,S,P,T,K,2,$35,T,P,Q+E+S+T
.byte ENDE
;**************************************************
; HUELLKURVENTABELLEN
; Hier werden Stuetzpunkte der Huellkurven
; als Lautstaerkewerte eingetragen
; jede Tabelle beginnt mit HUELL<n>
; und endet mit 'ENDE'
;**************************************************
;
; Erster Wert ist die Verzerrung und die Lautstärke
; Der zweite Wert gibt an, was mit dem Dritten Wert
; gemacht werden soll
; $00 = Dritten Wert wird nicht berücksichtigt
; $01 = Dritter Wert überschreibt die Frequenz
; $02 = Dritter Wert wird zur Frequenz addiert
; $03 = Dritter Wert wird von der Frequenz subtrahiert
; $04 = Dritter Wert die Schritte eines Loop zurück an
; $05 = Die Frequenz wird um 1 dauerhaft erhöht, wobei der dritte Wert eine Verzögerung angibt
; $06 = Die Frequenz wird um 1 dauerhaft reduziert, wobei der dritte Wert eine Verzögerung angibt
HUELL0 .byte $A8,$00,$00 ; Langer klarer Ton
.byte ENDE
HUELL1 .byte $C6,$00,$00 ; Verzerrung für Bass-Töne
.byte $C8,$00,$00
.byte $C8,$00,$00
.byte $C6,$00,$00
.byte $C6,$00,$00
.byte $C4,$00,$00
.byte $C4,$00,$00
.byte $C3,$00,$00
.byte $C3,$00,$00
.byte $00,$00,$00
.byte ENDE
HUELL3 .byte $06,$01,$03 ; Tiefer Drum
.byte $A6,$01,$D0
.byte $A6,$01,$E0
.byte $A4,$01,$F0
.byte $A3,$01,$F8
.byte $02,$01,$04
.byte $01,$01,$04
.byte $00,$00,$00
.byte ENDE
HUELL2 .byte $88,$01,$00 ; Hoher Square Drum
.byte $86,$01,$01
.byte $A2,$01,$02
.byte $00,$01,$00
.byte ENDE
HUELL4 .byte $A8,$05,$04 ; Klarer Ton, aber Frequenz wird ständig erhöht
.byte $A8,$04,$01
.end
Grüße
Janko